package leetcode101.bit_operation;

/**
 * @author Synhard
 * @version 1.0
 * @Class Code5
 * @Description 342. 4的幂
 * 给定一个整数，写一个函数来判断它是否是 4 的幂次方。如果是，返回 true ；否则，返回 false 。
 *
 * 整数 n 是 4 的幂次方需满足：存在整数 x 使得 n == 4x
 *
 *
 * 示例 1：
 *
 * 输入：n = 16
 * 输出：true
 * 示例 2：
 *
 * 输入：n = 5
 * 输出：false
 * 示例 3：
 *
 * 输入：n = 1
 * 输出：true
 * @tel 13001321080
 * @email 823436512@qq.com
 * @date 2021-05-01 11:42
 */
public class Code5 {
    public static void main(String[] args) {
        System.out.println(isPowerOfFour(16));
    }
    public static boolean isPowerOfFour(int n) {
        boolean flag = false;
        for (int i = 0; i < 32; i++) {
            if ((n & 1) == 1) {
                if ((i & 1) == 1) {
                    return false;
                } else {
                    if (!flag) {
                        flag = true;
                    } else {
                        return false;
                    }
                }
            }
            n >>= 1;
        }
        return flag;
    }
}
